// 首先引入Mock
const Mock = require('mockjs');

// 设置拦截ajax请求的相应时间
Mock.setup({ timeout: '200-600' });

// 使用webpack的require.context()遍历所有mock文件
const files = require.context('.', true, /\.js$/);

// 筛查文件
let configArray = [];
files.keys().forEach((key) => {
  // 如果是index.js   return
  if (key === './index.js') return;
  // 如果是interface.js  push在 configArray
  configArray = configArray.concat(files(key).default);
});

// 注册所有的mock服务
configArray.forEach((item) => {
  /** Object.entries()
   * 返回一个给定对象自身可枚举属性的键值对数组，其排列与使用 for…in 循环遍历该对象时返回的顺序一致
   * （区别在于 for-in 循环也枚举原型链中的属性）
  */

  for (let [path, target] of Object.entries(item)) {
    let protocol = path.split('|');
    
    /** Mock.mock( rurl, rtype, template )
     *  @rurl：URL地址，可以是 URL 字符串或 URL 正则
     *  @rtype：ajax请求方式
     *  @template：数据模板，可以是对象或字符串
    */
    Mock.mock(new RegExp('^' + protocol[1]), protocol[0], target);
  }
});